"""
This object contains all the information 
relative to a project. It is a data structure 
that represents all the modules and their 
relations to each other. Since it contains
all the information needed for the project,
it will be pickled to create a save file.
"""

from AudioProcessor import AudioProcessor
from ProjectScreen import ProjectScreen

class ProjectBoard:
  def __init__(self, parent):
    self.title = "New Project"
    self.screen = ProjectScreen(parent)
    self.processor = AudioProcessor()

    """
      the data structures are yet to be determined
      """
  
  def add(module):
    """
    calls ModuleFactory to create
    the appropriate module and store
    it in the data structure
    """

  def link(moduleOut, moduleIn):
    """
    calls CableFactory to create a cable between two
    stored modules
    """


  def getScreen(self):
    return self.screen

  def getTitle(self):
    return self.title

  def saveProject(self):
    """
    pickle the data structures
    """

  def loadProject(self, file):
    """
    unpickle a save file and recreates the graphical interface
    """






